In computer networks, a number of network stations are typically interconnected via a communications medium. For example, Ethernet 802.3 is a commonly used local area network (LAN) scheme in which multiple stations are connected to a shared or dedicated serial data path. These stations often communicate with a switch located between the data path and the stations connected to that path. The switch typically controls the communication of data and includes logic for receiving and forwarding data frames to their appropriate destinations.
When all of the stations connected to the network are simultaneously operating and transmitting data at high speeds, data traffic on the switch may become heavy. Accordingly, some switches implement a flow control scheme using “pause” frames. For example, when some sort of congestion on the switch occurs, the switch may transmit a media access control (MAC) control pause frame to stations connected to the switch. The pause frame instructs the stations receiving the pause frame to stop sending data for a period of time.
A drawback with conventional flow control schemes, such as those using pause frames, is that a switch is unable to selectively suspend data transmissions from a network station that is included in the network without suspending data transmissions from other network stations connected to the switch. In networks that include a large number of stations, transmitting conventional pause frames may reduce data throughput by pausing data transmissions from stations not associated with the congestion condition.